allocatingcopyingdefinedhow allocated releasing Boolean operators, short-circuitcallback routinesand code segmentationcode segmentingand dangling pointerseffect on callback routinescompaction. See heap compactioncopying memory blocksCurrentA5 global variabledefinedgetting valuecushions. See memory cushionsdangling pointersavoiding causes ofdangling procedure pointersdefined detecting
introducedlocking blocks to preventreferencing callback routines using local variables to preventdereferenced handles'dialog boxes, and low-memory situationsdisposed handleschecking fordefinedpreventing dereferencing ofproblems usingDisposeHandle procedureDisposePtr proceduredouble indirectionempty handleschecking fordefinedEmptyHandle procedureused by a grow-zone functionfake handlescreatingdefinedproblems using%fragmentation. See heap fragmentationgaps in heaps, danger ofGetApplLimit functiongglobal variables. See application global variables; system global variables; QuickDraw global variablesgrow-zone functionsdefined
example offinding protected blocksettingusing SetA5 functionusing SetCurrentA5 functionGZRootHnd global variableGZSaveHnd functionHandle data typehandleschecking validity ofdefinedheap compactiondefined%movement of relocatable blocks duringheap fragmentation causes ofdefinedduring memory reservationmaximizing heap size to prevent
preventingsummary of preventionheap purging'heap. See application heap; system heapHGetState functionHLock procedureHLockHi procedureHNoPurge procedureHPurge procedureHSetState procedureHUnlock procedureInitZone procedureinterrupt tasksand Memory Manager routinesinterrupt time#avoiding Memory Manager routines at
jump tablejump table entriesfor callback routines(linked lists, allocating new elements in,loading code segments, and dangling pointerslocking relocatable blockslow-memory conditionsmaster pointer blocksmaster pointersallocating manuallydefined#determining how many to preallocate$number per block in application zonerunning out ofMaxApplZone procedureand ApplLimit global variableand heap fragmentationautomatic execution ofMemErr global variableMemError functionmemoryallocating and releasingorganization ofmemory cushionsdefineddetermining optimal size ofmaintainingMemory Manager24-bit32-bitallocating master pointersand application heapcalling grow-zone functioncompacting heap
data typesmovement of blocks bypurging heapreserving memoryreturning result codes(memory reservation. See reserving memorymemory reservesbenefits ofdefinedmaintainingMoreMasters procedureMoveHHi proceduremoving relocatable blocks highNewHandle functionNewHandleClear functionNewPtr functionNewPtrClear function9nonessential memory requests, checking whether to satisfynonrelocatable blocksadvantages of
allocatingallocating temporarilydata type fordefineddisposal and reallocation of releasingwhen to allocate
partitions2.See also application partitions; system partitionpointersProcPtr data typeand code segmentationprotected blocksdefineddetermining which they arehandle to returned by GZSaveHndPtr data typePurgeSpace procedurepurging heap zonespurging relocatable blocksQuickDraw global variablesdefinedReallocateHandle procedurereallocating relocatable blocksrelocatable blocks
allocatingchanging propertiesdata type fordefineddisadvantages ofemptyinggetting propertiesin bottom of heap zonelockingfor long periods of timefor short periods of timemaking purgeablemaking unpurgeablemanagingmaster pointers after disposingmaster pointers for#moving around nonrelocatable blocksmoving highproperties ofpurgingreallocating releasingrestrictions on locked blockssetting propertiessizingmovement during unlockingwhen to lockReserveMem procedurereserves. See memory reservesreserving memoryand heap fragmentationdefinedfor relocatable blockslimitation ofresource types'SIZE'(result codes for Memory Manager routinesSetA5 functionused in a grow-zone functionSetApplLimit procedureusing to increase size of stackSetCurrentA5 functionused in a grow-zone functionSetGrowZone procedureshort-circuit Boolean operatorsSignedByte data typestackcollisions with the heapdefault size ofdefinedincreasing size ofstack framestack sniffersystem global variablesdefinedsystem heapdefinedsystem partition..See also system heap; system global variablestemporary memorydefinedthirty-two bit addressingdefined]thirty-two bit clean]twenty-four bit addressingdefined]unlocking relocatable blocks)updating windows, saving memory space forvirtual memory
introduced.WITH statement (Pascal), and dangling pointerszero (memory location)See 0 (memory location)zero-length handlesSee 0-length handles'sysz' resource type
@ operator_OSDispatch trap macro.See also heap zonesdefinedgetting a pointer toinitializing$subdividing into multiple heap zonesApplicationZone functionApplZone global variableblock contentsblock headers3.See also nonrelocatable blocks; relocatable blocksconcatenatingmanipulatingsize correction forBufPtr global variable%limitation on lowering during startupByte data type(code resources, copying into system heapcompacting heap zonesCompactMem functionCompactMemSys functionconcatenating memory blockscurrent heap zoneCurStackBase global variableDeskHook global variable*and displaying windows during startup timeclearing in PascalDetachResource procedureduplicating relocatable blocks-Finder, allocation of memory for disk copying
free space assessing+assessing availability for temporary memoryFreeMem functionFreeMemSys functionGetHandleSize function+GetNextEvent function, and temporary memoryGetPtrSize functionGetZone functionHandAndHand function.See also relocatable blocks
recoveringrelativeHandleZone functionHandToHand functionHClrRBit procedureroutines forroutines for
heap zones%.See also zone headers; zone trailers accessingchangingdefinedgetting current zoneinitializingmanipulatingorganization of$subdividing into multiple heap zonesHeapEnd global variable'high memory, allocating at startup timeHSetRBit procedureInitApplZone procedure3initializing new heap zones within other heap zones*interprocess buffers, and temporary memoryand temporary memorylogical sizes of blockslow-memory global variablesSee system global variablesMaxBlock functionMaxBlockSys functionmaximizing heap zone spaceMaxMem functionMaxMemSys functionmaxSize constantMC680x0 microprocessorsize of memory blocks with*.See also temporary memory; virtual memoryallocating during startup assessingchanging sizes of blocksfreeing!memory blocks. See blocks, memoryapplication-defined routinescapabilities ofdefinedroutinestesting for featuresMemTop global variablemultiple heap zonesimplementinguses forNewEmptyHandle functionNewEmptyHandleSys functionNewHandleSys functionNewHandleSysClear functionNewPtrSys functionNewPtrSysClear function.See also blocks, memorysizing=operating system queues, storing elements in system heap zoneoriginal application heap zonephysical sizes of blocks2.See also nonrelocatable blocks; dangling pointers"referencing code in code resourcesPtrAndHand functionPtrToHand functionPtrToXHand functionPtrZone functionpurge-warning proceduresdefinedinstalled by SetResPurgerestrictions onsampleusing SetA5 functionusing SetCurrentA5 functionPurgeMem procedurePurgeMemSys procedureRecoverHandle functionrelative handles!.See also blocks, memory; handlesclearing resource bitconcatenatingduplicatingsetting propertiessetting resource bitsizing unlockingReserveMemSys procedureroutinesresource bitclearingsetting5Resource Manager, installing purge-warning procedures'sysz'!used in a purge-warning procedureSetApplBase procedure!used in a purge-warning procedureSetHandleSize procedureSetPtrSize procedure:SetResPurge procedure, installing purge-warning proceduresSetZone proceduresize correction for blocksSize data typedetermining available spaceStackSpace functionstartup processallocating memory duringdisplaying windows duringStr255 data typeStringHandle data typeStringPtr data typeSysEqu.p interface file4system extensions, allocating memory at startup timechangingreadinguses ofsystem heap zoneallocating memory increating new heap zones withindefinedgetting a pointer toinstalling interrupt code intouses forSystemZone functionSysZone global variable tag bytesTempFreeMem functionTempMaxMem functionTempNewHandle function
allocating confirming success of allocationdetermining zone oflimitation on lockingoperating on blocksoptimal usage of)release of during application terminationroutinestesting for features oftracking ofusing as a heap zoneTheZone global variableTHz data typeTopMem function,WaitNextEvent function, and temporary memoryZone data structurezone headerszone pointerszone recordszone trailer blockszone trailers_DebugUtil trap_MemoryDispatch trap macro"_MemoryDispatchA0Result trap macroAddress Management Unit (AMU)@address space. See logical address space; physical address spaceAMU (Address Management Unit)AppleShare, and paging devices!backing volume. See paging devicebacking-store filesdefinedbus-error vectorscompletion routinesdeferred under virtual memoryconcurrent driverscontrol panels, Memory.See Memory control panel
data cacheand virtual memoryDebuggerEnter procedureDebuggerExit procedureDebuggerGetMax functionDebuggerLockMemory functionDebuggerPoll proceduredebuggers, and virtual memoryDebuggerUnlockMemory functionDeferUserFn function
introducedusing$device drivers, avoiding page faultsdirect memory access (DMA)DMA. See direct memory accessdouble page faultsGetPageState functionGetPhysical function(and discontiguous physical address space
introducedusingholding physical memoryHoldMemory functiondeferring under virtual memory-deferring code execution under virtual memoryinterrupts, nonmaskable!ISP. See stack pointer, interruptlocking physical memorydebugger routinedefinedroutines forLockMemory function
introducedLockMemoryContiguous functionlogical address spacepossible fragmentation ofsize of with 24-bit addressingsize of with 32-bit addressing%translating to physical address space<logical-to-physical translation table. See translation table%LogicalToPhysicalTable data structureholding releasingmemory addressesmapping logical to physical1memory configuration, obtaining information aboutMemory control panelmemory management unit (MMU)memory-block recordMemoryBlock data structureMMU (memory management unit)nonmaskable interruptspage faults.See also double page faultsdefinedhandling%intercepted by Virtual Memory Managerprotection against#Paged Memory Management Unit (PMMU)PageFaultFatal functionpages, memorydefinedholdinglockinglocking contiguously releasing unlockingPageState data typepagingpaging devicephysical address spacediscontiguousphysical memoryholding pages inlocking pages inreleasing pagesunlocking pages#PMMU (Paged Memory Management Unit)releasing held pages#removable disks, and virtual memory3slot-based VBL tasks, deferred under virtual memorystack pointerinterrupt (ISP)
user (USP)supervisor mode held in RAM under virtual memorythirty-two bit addressing]Time Manager tasksdeferred under virtual memory)translating logical to physical addressestranslation tablestwenty-four bit addressing]UnholdMemory functionunlocking physical memorydebugger routineUnlockMemory functionUSP. See stack pointer, user VBL tasksdeferred under virtual memoryVector Base Register (VBR)and AppleShare volumesand removable disksand user interruptsbus-error vectors underCPU data cachingdebugger routinesdebugger support for"deferring interrupt code executionmanagement routinesmapping information, gettingrequirements for runningtesting for availabilityVirtual Memory Manager.See also virtual memorydata structuresdefinedroutines%setting with the Memory control panelstripping flag bitsmachines that support%setting with the Memory control panelusing temporarily+_BlockMove trap, flushing instruction cache_HWPriv trap macro)_LoadSeg trap, flushing instruction cache&_Read trap, flushing instruction cache+_UnloadSeg trap, flushing instruction cache/use of by Toolbox and Operating System routines!using to access QuickDraw globals accessing in completion routinesaccessing in interrupt tasksaddress-translation modegettingsettingtemporarily changingaddresses. See memory addressesaddressing modes24-bit32-bitcurrent mode, getting switching accessing in completion routinesaccessing in interrupt tasks(volume specified in Memory control panel5caches. See data cache; disk cache; instruction cachemaintaining the A5 register in(click-loop routines, and the A5 registermaintaining the A5 register in.control action procedures, and the A5 register2control definition procedures, and the A5 registercopy-back cacheand callback routinesdefinedflushing#deferred tasks, and the A5 registerand stale data
disk cachedefined%setting with the Memory control panel flag bitsmaster pointer strippingFlushCodeCache procedureFlushCodeCacheRange functionFlushDataCache procedureflushing
data cacheinstruction cacheFlushInstructionCache procedureGetMMUMode functionand the A5 registerHFS RAM Cache panel,I/O completion routines, and the A5 registerinstruction cachedefinedflushingmaintaining the A5 registerand stale instructionsand stale datamaster pointer flag bits comparing
data cacheinstruction cache comparingconverting to 32-bit modestripping flag bits fromtranslatingaddressing mode controlsdisk cache controlsillustrated
introducedRAM disk controlsvirtual memory controls/menu definition procedures, and the A5 register&Notification Manager, and the A5 world5notification response procedures, and the A5 register7OpenResFile function, calling StripAddress on filenames6OpenRFPerm function, calling StripAddress on filenamesordered address comparisonspatches, and stale instructions&Process Manager, and callback routinesprocessor caches'.See also data cache; instruction cache7program counter, fixing before switching to 32-bit modereading in stand-alone codestructure ofusing in stand-alone codeRAM cache. See disk cache RAM disksdefined)setting size of with Memory control panelreference constant fieldsusing to store A5 value+self-modifying code, and stale instructions
stale dataavoiding problems withdefinedstale instructionsavoiding problems withdefined@stand-alone code resources, changing address-translation mode inStripAddress functionSwapDataCache functionSwapInstructionCache functionSwapMMUMode procedurecalling from stand-alone codemachines that support]&setting with the Memory control panel]using temporarily]and the A5 registerTranslate24To32 function!trap patches, and the A5 register&setting with the Memory control panel]stripping flag bits]and the A5 registerbacking-store file%setting with the Memory control panel1window definition procedures, and the A5 register(word-break routines, and the A5 registerwrite-through cache